// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Author: wsfuyibing <682805@qq.com>
// Date: 2024-07-13

package crontab

import (
	"gitee.com/go-libs/crontab/src"
)

// Export src types.

type (
	// Cron
	// is an alias for src.Cron.
	Cron = src.Cron

	// Crontab
	// is an alias for src.Crontab.
	Crontab = src.Crontab

	// Job
	// is an alias for src.Job.
	Job = src.Job

	// JobBefore
	// is an alias for src.JobBefore.
	JobBefore = src.JobBefore

	// JobFailed
	// is an alias for src.JobFailed.
	JobFailed = src.JobFailed

	// JobFinish
	// is an alias for src.JobFinish.
	JobFinish = src.JobFinish

	// JobSucceed
	// is an alias for src.JobSucceed.
	JobSucceed = src.JobSucceed

	// Strategy
	// is an alias for src.Strategy.
	Strategy = src.Strategy

	// Worker
	// is an alias for src.Worker.
	Worker = src.Worker
)

// Export constants.

const (
	// EveryMinute
	// is an alias for src.EveryMinute strategy.
	EveryMinute = src.EveryMinute

	// EveryHour
	// is an alias for src.EveryHour strategy.
	EveryHour = src.EveryHour
)

// Export src functions.

// New
// creates a crontab with given name.
func New(name string) Cron {
	return src.NewCrontab(name)
}

var (
	// NewWorker
	// is an alias for src.Worker creator.
	NewWorker = src.NewWorker
)
